package com.zwp.base.repository

import okhttp3.Cookie
import okhttp3.HttpUrl

interface CookieStore {
    /**
     * Desc:保存url对应所有cookie
     *
     * @param url 地址
     * @param cookie 缓存
     */
    fun saveCookie(url: HttpUrl?, cookie: List<Cookie?>?)

    /**
     * Desc:保存url对应所有cookie
     *
     * @param url 地址
     * @param cookie 缓存
     */
    fun saveCookie(url: HttpUrl?, cookie: Cookie?)

    /**
     * Desc:加载url所有的cookie
     *
     * @param url 地址
     * @return list 缓存集合
     */
    fun loadCookie(url: HttpUrl?): List<Cookie?>?

    /**
     * Desc:获取当前所有保存的cookie
     *
     * @return list 缓存集合
     */
    val allCookie: List<Cookie?>?

    /**
     * Desc:获取当前url对应的所有的cookie
     *
     * @param url 地址
     * @return list 缓存集合
     */
    fun getCookie(url: HttpUrl?): List<Cookie?>?

    /**
     * Desc:根据url和cookie移除对应的cookie
     *
     * @param url 地址
     * @param cookie 缓存
     * @return boolean 是否清空
     */
    fun removeCookie(url: HttpUrl?, cookie: Cookie?): Boolean

    /**
     * Desc:根据url移除所有的cookie
     *
     * @param url 地址
     * @return boolean 是否移除
     */
    fun removeCookie(url: HttpUrl?): Boolean

    /**
     * Desc:移除所有的cookie
     *
     * @return boolean 全部移除
     */
    fun removeAllCookie(): Boolean
}